# 文件读取流程
# 1、open('文件路径', 'r') 'r'表示读， 如果文件不存在，open()函数就会抛出一个IOError的错误
# 2、文件读取成功操作系统返回一个操作对象
# 3、使用操作对象进行调用
# 4、最后一步是调用close()方法关闭文件

# Python引入了with语句来自动帮我们调用close()方法：
with open('./00.readme.md', 'r') as f:
    # 1.read()会一次性读取文件的全部内容
    # print(f.read())
    # 2、如果文件有10G，内存就爆了，所以，要保险起见，可以反复调用read(size)方法每次最多读取size个字节的内容
    # print(f.read(2))
    # 3、readline()可以每次读取一行内容
    # print(f.readline())
    # 4、调用readlines()一次读取所有内容并按行返回list
    for line in f.readlines():
        # 把末尾的'\n'删掉
        print(line.strip()) 


# file-like Object
# 像open()函数返回的这种有个read()方法的对象，在Python中统称为file-like Object。除了file外，还可以是内存的字节流，网络流，自定义流等等。
# file-like Object不要求从特定类继承，只要写个read()方法就行。
# StringIO就是在内存中创建的file-like Object，常用作临时缓冲